package com.etc.test4;

import java.io.InputStream;
import java.util.Date;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.etc.mapper.EmpMapper;
import com.etc.pojo.Emp;

public class TestMain {

    public static void main(String[] args) {
        
        // 读取 主XML文件
        InputStream is = TestMain.class.getClassLoader().getResourceAsStream("MybatisConfig.xml");
        SqlSessionFactory facotry = new SqlSessionFactoryBuilder().build(is);
        
        // 1获取sqlSession对象
        SqlSession session = facotry.openSession();
        
        // 2获取接口对象
        EmpMapper mapper = session.getMapper(EmpMapper.class);
        
        // 3调用mapper的方法， 方法名 和子mapperxml中的id
        Emp emp = mapper.selectByPrimaryKey(1);
        
        System.out.println(emp.getEname() + "@" + emp.getJob());
        
        // 一级缓存
        EmpMapper mapper2 = session.getMapper(EmpMapper.class);
        
        // 曾经我检索1的结果 在缓存中 二级缓存
        Emp emp1 = mapper2.selectByPrimaryKey(1);
        System.out.println(emp1.getEname() + "@" + emp1.getJob());
        System.out.println("-----------");
        
        // 创建插入的条件
        Emp emp3 = new Emp();
//        emp3.setBirthday(new Date());
//        emp3.setDid(1);
//        emp3.setEname("玛丽");
//        emp3.setJob("前台");
//        emp3.setSal(2000.0);
//        emp3.setSex("女");
//        int i = mapper2.insert(emp3);
//        System.out.println(i);
//        session.commit();
        
        // 检索所有数据
        List<Emp> elist = mapper.selectAllEmp();
        
        for (Emp tmp: elist) {
            System.out.println(tmp);
        }
        
        // 
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        // 4.关闭资源
        session.close();

        
    }
}
